﻿// 项目：	IBS.Data - IBS
// 文件名：	IRepository.cs
// 
// 修改时间：2013-03-02 18:41
// 修改人：	Cooclsee

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;

namespace Guan.CMS.Data.Infrastructure
{
    public interface IRepository<T> where T : class
    {
        void Add(T entity);
        void Update(T entity);
        void AddOrUpdate(T entity);
        void Delete(T entity);
        void Delete(Expression<Func<T, bool>> where);
        T GetById(long id);
        T GetById(string id);
        T Get(Expression<Func<T, bool>> where);
        IEnumerable<T> GetAll();
        IEnumerable<T> GetMany(Expression<Func<T, bool>> where);
        IQueryable<T> GetList();
        IQueryable<T> GetList(Expression<Func<T, bool>> where);
    }
}